Devices that connect to a host computer by means of a USB bus may be referred to as USB devices. A USB device may be a printer, a scanner, a hard disk, a digital camera, a CD burner, etc., or any device configured to connect to a host system or device via a USB bus. Enumeration is the bus related process by which a USB device is attached to a system and is assigned a specific numerical address that will be used to access that particular device. It is also the time at which the USB host controller queries the device in order to decide what type of device it is in order to attempt to assign to it an appropriate driver. This process is a fundamental step for every USB device because, without it, the device would never be able to be used by the operating system.
Until recently there were two classifications of USB devices, low speed devices and full speed devices. During the initial enumeration process, during which it identifies itself to the host and obtains an address, the device draws current from the V-bus line of the USB bus. A USB specification states that this current should not exceed 100 mA during enumeration. The low speed and full speed devices have had no trouble meeting the 100 mA specification. Once the initialization of the enumeration process is complete, the USB device may request to draw up to 500 mA, and may do so once the host has granted permission.
Recent USB devices have been manufactured that operate at higher speeds (High-Speed USB) than the full speed devices and, as a result, they may draw current in excess of 100 mA during the initial process of enumeration. Manufacturers of high speed USB devices are finding it difficult to manufacture such a device that runs at less than 100 mA during the initial enumeration process. The consequence is that many manufacturers are having problems getting USB certification for their products or are producing products that are draining excess battery power from laptop computers or other wireless host devices in violation of the USB specification 2.0.